package cn.com.qingz.modules.user.service;

import java.util.List;

import com.github.miemiedev.mybatis.paginator.domain.PageList;

import cn.com.qingz.modules.user.model.Resource;
import cn.com.qingz.modules.user.model.Role;
import cn.com.qingz.modules.user.vo.RoleAuthorityVo;
import cn.com.qingz.modules.user.vo.RoleCondition;

public interface RoleService {

    /**
     * 查询所有角色
     * @return
     */
    List<Role> getAllRoles();

    /**
     * 查询所有权限资源
     * @return
     */
    public List<Resource> getAllResource();

    /**
     * 查询用户的角色
     * @param userid
     * @return
     */
    List<Role> getUserRole(Long userid);

    /**
     * 添加角色
     * @param role
     */
    void doAddRole(Role role);

    /**
     * 修改角色
     * @param role
     */
    void doUpdateRole(Role role);

    /**
     * 删除角色
     * @param role
     */
    void doDeleteRole(Role role);

    public void doDisableRoles(String roleids);

    /**
     * 角色分页查询
     * @param condition
     * @param page
     * @param limit
     * @return
     */
    public PageList<RoleAuthorityVo> queryRolePage(RoleCondition condition, int page, int limit);

    void doOnOff(Integer roleid, String status);

    /**
     * 检查角色代码是否重复 true 重复: false 未重复
     * @param code
     * @return
     */
    public boolean checkRoleCode(String code);

    /**
     * 检查资源代码是否重复 true 重复: false 未重复
     * @param code
     * @return
     */
    public boolean checkResourceCode(String code);

}
